package net.coding.program.common.util;
import android.text.Editable;
import android.view.View;
import net.coding.program.common.enter.SimpleTextWatcher;
/**
* Created by chenchao on 15/12/22.
*/
public class ViewStyleUtil {
private static InputRequest sNoEmptyRequest = s -> s.length() > 0;
// 只有所有 EditText 都填写了,Button 才是可点击状态
public static void editTextBindButton(View button, OnTextChange... edits) {
editTextBindButton(button, sNoEmptyRequest, edits);
}
public static void editTextBindButton(View button, InputRequest request, OnTextChange... edits) {
for (OnTextChange edit : edits) {
edit.addTextChangedListener(new SimpleTextWatcher() {
@Override
public void afterTextChanged(Editable s) {
updateStyle(button, request, edits);
}
});
}
updateStyle(button, request, edits);
}
private static void updateStyle(View button, InputRequest request, OnTextChange[] edits) {
for (OnTextChange item : edits) {
if (item instanceof View) {
View v = (View) item;
if (v.getVisibility() != View.VISIBLE) {
continue;
}
}
String input = item.getText().toString();
if (!request.isCurrectFormat(input)) {
button.setEnabled(false);
return;
}
}
button.setEnabled(true);
}
}